package com.yiguo.common;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.util.Log;
public class WifiInfoManager {
       private WifiManager wifiManager;
       public WifiInfoManager(Context paramContext) {
              this.wifiManager = (WifiManager) paramContext.getSystemService(Context.WIFI_SERVICE);
       }
       public List<WifiInfo> dump() {
              if (!this.wifiManager.isWifiEnabled()) {
                     return new ArrayList<WifiInfo>();
              }
              android.net.wifi.WifiInfo wifiConnection = this.wifiManager.getConnectionInfo();
              WifiInfo currentWIFI = null;
              if (wifiConnection != null) {
                     String s = wifiConnection.getBSSID();
                     int i = wifiConnection.getRssi();
                     String s1 = wifiConnection.getSSID();
                     currentWIFI = new WifiInfo(s, i, s1);
              }
              ArrayList<WifiInfo> lsAllWIFI = new ArrayList<WifiInfo>();
              if (currentWIFI != null) {
                     lsAllWIFI.add(currentWIFI);
              }
              List<ScanResult> lsScanResult = this.wifiManager.getScanResults();
              for (ScanResult result : lsScanResult) {
                     WifiInfo scanWIFI = new WifiInfo(result);
                     if (!scanWIFI.equals(currentWIFI))
                            lsAllWIFI.add(scanWIFI);
              }
              return lsAllWIFI;
       }
       public boolean isWifiEnabled() {
              return this.wifiManager.isWifiEnabled();
       }
       public JSONArray wifiInfo() {
              JSONArray jsonArray = new JSONArray();
              for (WifiInfo wifi : dump()) {
                     JSONObject localJSONObject = wifi.info();
                     jsonArray.put(localJSONObject);
              }
              return jsonArray;
       }
       public WifiManager wifiManager() {
              return this.wifiManager;
       }
       public JSONArray wifiTowers() {
              JSONArray jsonArray = new JSONArray();
              try {
                     Iterator<WifiInfo> localObject = dump().iterator();
                     while (true) {
                            if (!(localObject).hasNext()) {
                                   return jsonArray;
                            }
                            jsonArray.put(localObject.next().wifi_tower());
                     }
              } catch (Exception localException) {
                     Log.e("location", localException.getMessage());
              }
              return jsonArray;
       }
       public class WifiInfo implements Comparable<WifiInfo> {
              public int compareTo(WifiInfo wifiinfo) {
                     int i = wifiinfo.dBm;
                     int j = dBm;
                     return i - j;
              }
              public boolean equals(Object obj) {
                     boolean flag = false;
                     if (obj == this) {
                            flag = true;
                            return flag;
                     } else {
                            if (obj instanceof WifiInfo) {
                                   WifiInfo wifiinfo = (WifiInfo) obj;
                                   int i = wifiinfo.dBm;
                                   int j = dBm;
                                   if (i == j) {
                                          String s = wifiinfo.bssid;
                                          String s1 = bssid;
                                          if (s.equals(s1)) {
                                                 flag = true;
                                                 return flag;
                                          }
                                   }
                                   flag = false;
                            } else {
                                   flag = false;
                            }
                     }
                     return flag;
              }
              public int hashCode() {
                     int i = dBm;
                     int j = bssid.hashCode();
                     return i ^ j;
              }
              public JSONObject info() {
                     JSONObject jsonobject = new JSONObject();
                     try {
                            String s = bssid;
                            jsonobject.put("mac", s);
                            String s1 = ssid;
                            jsonobject.put("ssid", s1);
                            int i = dBm;
                            jsonobject.put("dbm", i);
                     } catch (Exception ex) {
                     }
                     return jsonobject;
              }
              public JSONObject wifi_tower() {
                     JSONObject jsonobject = new JSONObject();
                     try {
                            String s = bssid;
                            jsonobject.put("mac_address", s);
                            int i = dBm;
                            jsonobject.put("signal_strength", i);
                            String s1 = ssid;
                            jsonobject.put("ssid", s1);
                            jsonobject.put("age", 0);
                     } catch (Exception ex) {
                     }
                     return jsonobject;
              }
              public final String bssid;
              public final int dBm;
              public final String ssid;
              public WifiInfo(ScanResult scanresult) {
                     String s = scanresult.BSSID;
                     bssid = s;
                     int i = scanresult.level;
                     dBm = i;
                     String s1 = scanresult.SSID;
                     ssid = s1;
              }
              public WifiInfo(String s, int i, String s1) {
                     bssid = s;
                     dBm = i;
                     ssid = s1;
              }
       }
}
